/**
 * 
 */
package org.yelongframework.model.generator.manager;

import java.util.Objects;

import org.yelongframework.model.manager.AbstractFieldAndColumn;

/**
 * 默认的生成的字段和列
 * 
 * @since 1.0.0
 */
public class DefaultGenFieldAndColumn extends AbstractFieldAndColumn implements GenFieldAndColumn {

	/** 列名称 */
	private final String column;

	/** 字段名称 */
	private final String fieldName;

	/** 字段类型 */
	private final Class<?> fieldType;

	// ==================================================构造器==================================================

	/**
	 * @param column    列名称
	 * @param fieldName 字段名称
	 * @param fieldType 字段类型
	 */
	public DefaultGenFieldAndColumn(String column, String fieldName, Class<?> fieldType) {
		this.column = Objects.requireNonNull(column, "column");
		this.fieldName = Objects.requireNonNull(fieldName, "fieldName");
		this.fieldType = Objects.requireNonNull(fieldType, "fieldType");
	}

	// ==================================================字段属性==================================================

	@Override
	public Class<?> getFieldType() {
		return this.fieldType;
	}

	@Override
	public String getFieldName() {
		return this.fieldName;
	}

	@Override
	public String getColumn() {
		return column;
	}

	// ==================================================转字符串==================================================

	@Override
	public String toString() {
		return "DefaultGFieldAndColumn [column=" + getColumn() + ",fieldName=" + fieldName + ", fieldType=" + fieldType
				+ "]";
	}

}
